#!/usr/bin/env python
"""
数据库初始化脚本
用于创建数据库表结构和示例数据
"""

import os
import sys
import django

# 设置Django环境
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'outfit_recommend.settings')
django.setup()

from django.db import connection
from api.models import UserProfile

def init_database():
    """初始化数据库"""
    print("开始初始化数据库...")
    
    # 创建数据库表
    with connection.cursor() as cursor:
        cursor.execute("""
            CREATE TABLE IF NOT EXISTS api_userprofile (
                id INTEGER PRIMARY KEY AUTO_INCREMENT,
                username VARCHAR(50) UNIQUE NOT NULL,
                gender VARCHAR(10) NOT NULL,
                age INTEGER NOT NULL,
                hobby VARCHAR(200) NOT NULL,
                height FLOAT NOT NULL,
                weight FLOAT NOT NULL,
                behavior_habit TEXT NOT NULL,
                created_at DATETIME(6) NOT NULL,
                updated_at DATETIME(6) NOT NULL
            );
        """)
    
    print("数据库表创建完成")
    
    # 创建示例用户
    sample_users = [
        {
            'username': '小明',
            'gender': '男',
            'age': 25,
            'hobby': '运动,健身,户外活动',
            'height': 175.0,
            'weight': 70.0,
            'behavior_habit': '经常健身，喜欢户外运动，工作需要穿正装'
        },
        {
            'username': '小红',
            'gender': '女',
            'age': 28,
            'hobby': '时尚,购物,旅行',
            'height': 165.0,
            'weight': 55.0,
            'behavior_habit': '时尚达人，喜欢尝试不同风格，工作需要穿职业装'
        },
        {
            'username': '李华',
            'gender': '男',
            'age': 22,
            'hobby': '学生,游戏,音乐',
            'height': 180.0,
            'weight': 75.0,
            'behavior_habit': '在校大学生，喜欢休闲风格，经常参加校园活动'
        }
    ]
    
    for user_data in sample_users:
        try:
            UserProfile.objects.get_or_create(
                username=user_data['username'],
                defaults=user_data
            )
            print(f"用户 {user_data['username']} 创建成功")
        except Exception as e:
            print(f"用户 {user_data['username']} 创建失败: {e}")
    
    print("示例用户创建完成")
    print("数据库初始化完成！")

if __name__ == '__main__':
    init_database()
